{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "eab505f3",
   "metadata": {},
   "source": [
    "Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n",
    "SPDX-License-Identifier: Apache-2.0\n",
    "\n",
    "# Learning Gremlin - Create, Update, and Delete Queries\n",
    "\n",
    "This notebook is the fourth in a series of notebooks that walk through how to write queries using Gremlin.  In this notebook, we will examine the basics of how to perform mutation operations, create/update/delete in Gremlin.  This notebook assumes that you have already completed the previous notebook \"01-Basic-Read-Queries\" so we will continue our lessons from the end of the previous notebook and assume that the data has been loaded into the cluster."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0c12469c",
   "metadata": {},
   "source": [
    "### Setting up the visualizations\n",
    "\n",
    "Run the next two cells to configure various display options for our notebook, which we will use later on to display our results in a pleasing visual way.  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6e655017",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%graph_notebook_vis_options\n",
    "{\n",
    "  \"groups\": {    \n",
    "    \"person\": {\n",
    "      \"color\": \"#9ac7bf\"\n",
    "    },\n",
    "    \"review\": {\n",
    "      \"color\": \"#f8cecc\"\n",
    "    },\n",
    "    \"city\": {\n",
    "      \"color\": \"#d5e8d4\"\n",
    "    },\n",
    "    \"state\": {\n",
    "      \"color\": \"#dae8fc\"\n",
    "    },\n",
    "    \"review_rating\": {\n",
    "      \"color\": \"#e1d5e7\"\n",
    "    },\n",
    "    \"restaurant\": {\n",
    "      \"color\": \"#ffe6cc\"\n",
    "    },\n",
    "    \"cuisine\": {\n",
    "      \"color\": \"#fff2cc\"\n",
    "    }\n",
    "  }\n",
    "}"
   ]
  },
  {
   "attachments": {
    "dining-by-friends.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "id": "48e9a85f",
   "metadata": {},
   "source": [
    "### Looking at our graph data\n",
    "\n",
    "As we examined the data model in the previous notebook, we are not going to examine it, however we will leave the data schema for reference.\n",
    "\n",
    "![dining-by-friends.png](attachment:dining-by-friends.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ab986dac",
   "metadata": {},
   "source": [
    "\n",
    "## Creating Data\n",
    "\n",
    "When working with any database, one of the most common tasks is adding new data. To add new nodes, edges, or paths in Gremlin we use the [`addV()`](https://tinkerpop.apache.org/docs/current/reference/#addvertex-step) step. \n",
    "\n",
    "\n",
    "### Creating a node with a label and properties\n",
    "The simplest option to create a node in Gremlin is to do a query similar to this:\n",
    "\n",
    "```\n",
    "g.addV()\n",
    "```\n",
    "This query will create a node with a default label (`vertex`) and no properties.  If we wanted to return the newly created element, we could by adding a [`next()`](https://tinkerpop.apache.org/docs/current/reference/#terminal-steps) step like shown here:\n",
    "\n",
    "```\n",
    "g.addV().next()\n",
    "```\n",
    "\n",
    "We can also create multiple elements simultaneously by combining `addV()` steps, as seen here:\n",
    "\n",
    "```\n",
    "g.addV().addV().next()\n",
    "```\n",
    "\n",
    "While these examples help in understanding the basic syntax, they are not very realistic.  In most scenarios you will not want to just add a node, instead you will want to add a node with a specific label and associated properties.\n",
    "\n",
    "Let's look at what our query looks like to create a new `person` node with the first name of `John` and a last name of `Doe`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f7a0df81",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.addV('person').property('first_name','John').property('last_name','Doe').next()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8364e41a",
   "metadata": {},
   "source": [
    "In the example above, the first and last name properties were added by calling the `property()` step after the node is created."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "67c4a339",
   "metadata": {},
   "source": [
    "### Creating multiple elements\n",
    "\n",
    "As previously mentioned, you can chain `addV()` steps together to create multiple records in the same statement. This is shown in the query below:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "cc64a6da",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.addV('person').property('first_name','Fred').property('last_name','Doe')\n",
    ".addV('person').property('first_name','Jane').property('last_name','Doe')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "91e99c64",
   "metadata": {},
   "source": [
    "### Creating edges\n",
    "\n",
    "Another common task is to create edges between nodes. To create edges, we use the [`addE()`](https://tinkerpop.apache.org/docs/current/reference/#addedge-step) step, which we can supply the name of the label we'd like to use, for example `friends`. \n",
    "\n",
    "```\n",
    "g.addE('friend')\n",
    "```\n",
    "\n",
    "As part of the edge creation process, we must also supply the `to` and `from` nodes with which the edge will connect. We do this by providing a traversal to each. In the query below, we find the nodes we created above for `John Doe` and `Jane Doe` and connect them with a `friends` edge."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "deabe58e",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.addE('friend')\n",
    ".from(__.V().hasLabel('person').has('first_name','John').has('last_name','Doe'))\n",
    ".to(__.V().hasLabel('person').has('first_name','Jane').has('last_name','Doe'))\n",
    ".next()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6d36e1dd",
   "metadata": {},
   "source": [
    "### Creating paths\n",
    "The last major task people want to do when adding data to their graph is to create entire paths containing both nodes and the connecting edges.  Using what we have already learned, we can accomplish this using a query like this:\n",
    "\n",
    "```\n",
    "g.addV('person').property('first_name','Jim').property('last_name','Doe')\n",
    ".addV('person').property('first_name','Joe').property('last_name','Doe')\n",
    ".addE('friends')\n",
    "    .from(__.V().hasLabel('person').has('first_name','Jim').has('last_name','Doe'))\n",
    "    .to(__.V().hasLabel('person').has('first_name','Joe').has('last_name','Doe'))\n",
    "```\n",
    "\n",
    "You will no doubt have noticed we used the `__` step in the edge creation process to locate the `to` and `from` nodes. This is because the `__` signifies an **anonymous traversal**. This means it will create an additional traverser outside of the main traversal to find the node(s) matching the specified filter.\n",
    "\n",
    "**Note**. The `__` is not required if you're running this type of query within a notebook using the `%%gremlin` magic."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1d716202",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.addV('person').property('first_name','Jim').property('last_name','Doe')\n",
    ".addV('person').property('first_name','Joe').property('last_name','Doe')\n",
    ".addE('friends')\n",
    "    .from(__.V().hasLabel('person').has('first_name','Jim').has('last_name','Doe'))\n",
    "    .to(__.V().hasLabel('person').has('first_name','Joe').has('last_name','Doe'))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e0d3236d",
   "metadata": {},
   "source": [
    "Another way of performing the above is to use `aliases`. This can save us time and effort (and potentially costly typos), effectively removing the need to re-type the `from()` and `to()` steps."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5774c284",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.addV('person').property('first_name','Laura').property('last_name','Kirk').as('a')    //alias our first person as 'a'\n",
    ".addV('person').property('first_name','Peter').property('last_name','Jackson').as('b')  //alias our second person as 'b'\n",
    ".addE('friends')\n",
    "    .from('a')  //add the edge from 'a'\n",
    "    .to('b')    //to 'b'"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9b78432a",
   "metadata": {},
   "source": [
    "## Updating Data\n",
    "\n",
    "After creating data, the next most common task is to update data within the graph. Lucky for us, we have already learned the building blocks we need to know to accomplish this task.  In Gremlin, we can use the same principles that we used when creating and filtering on objects. In the example below, let's update the `first_name` of the `Joe Doe` node we created in the previous step."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0335cb50",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.V()\n",
    "//filter for the John Doe node\n",
    ".hasLabel('person').has('first_name','Joe').has('last_name','Doe')\n",
    "//update it using the property() step\n",
    ".property('first_name','Joseph')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b4116def",
   "metadata": {},
   "source": [
    "Now let's run the following query to take a look at our `person` node with a `last_name` of `Doe`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8e088afc",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.V()\n",
    ".hasLabel('person').has('last_name','Doe')\n",
    ".valueMap('first_name')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "58f5dfe0",
   "metadata": {},
   "source": [
    "From the query above, you should have the following results:\n",
    "\n",
    "```\n",
    "{'first_name': ['Jim']}\n",
    "{'first_name': ['Joe', 'Joseph']}\n",
    "```\n",
    "\n",
    "Hang on, that's not what we meant to do! We wanted to update the `first_name` property to `Joe`, not append it to the existing value. Why has this happened? It's because of something called property cardinality, which we'll discuss below."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "70d12ad6",
   "metadata": {},
   "source": [
    "### Single valued properties and multi-valued properties\n",
    "\n",
    "Gremlin supports both `Single` and `Set` properties. Single properties are those that will only have one value at any given time, for example `age` or `first_name`. Set properties are those can have multiple values, for example `favourite_sports`, where it makes sense to store the values as a list or map, instead of individual properties.\n",
    "\n",
    "When creating or updating a property, you can tell Gremlin the *type* of property you' using either the `single` or `set` keywords. By not specifying either, Gremlin will assume it is a `set` property.\n",
    "\n",
    "In the following example, we're going to create a single `age` property for the `Joseph Doe` node, but first we need to ensure we've only got one `first_name` value."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8ebce174",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.V()\n",
    ".hasLabel('person').has('last_name','Doe')\n",
    ".has('first_name',within('Joe','Joseph'))\n",
    ".property(single,'first_name','Joseph')\n",
    ".valueMap('first_name')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a9b2ec8e",
   "metadata": {},
   "source": [
    "The above query will have updated the `first_name` property for `[Joe, Joseph] Doe` to `Joseph` as follows:\n",
    "\n",
    "```\n",
    "{'first_name': ['Joseph']}\n",
    "```\n",
    "\n",
    "Now let's create the `age` property."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2c0fdc01",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.V()\n",
    ".hasLabel('person').has('first_name','Joseph').has('last_name','Doe')\n",
    ".property(single, 'age',32)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ff20b063",
   "metadata": {},
   "source": [
    "In the following example, we're going to use the `set` keyword to specify that the new `favourite_sports` property will be used to store multiple values:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7371ac06",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.V()\n",
    ".hasLabel('person').has('first_name','Joseph').has('last_name','Doe')\n",
    ".property(set,'favourite_sports','soccer')\n",
    ".property(set,'favourite_sports','tennis')\n",
    ".property(set,'favourite_sports','baseball')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "32c06e2f",
   "metadata": {},
   "source": [
    "Finally, we can confirm our properties have been correctly updating by using the following query:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6aaa7fdb",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.V().hasLabel('person').has('first_name','Joseph').has('last_name','Doe').valueMap()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e299d1a4",
   "metadata": {},
   "source": [
    "## Upserting Data\n",
    "\n",
    "We have learned how to create and update data in our graph. However there is another important mutation operation that we want to cover. That operation is how to perform an upsert, where data is created if it doesn't exist or updated if it does.  In Gremlin, this operation can be performed using two approaches. The first is combining the `coalesce`, `fold` and `unfold` steps. The second - and more recent approach - is using the new `mergeV` and `mergeE` steps.\n",
    "\n",
    "Let's start with exploring the new approach:"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eedeb3a0",
   "metadata": {},
   "source": [
    "### Upserting Nodes using `mergeV()`\n",
    "\n",
    "With Neptune [supporting Apache Tinkerpop 3.6.x](https://aws.amazon.com/blogs/database/exploring-new-features-of-apache-tinkerpop-3-6-x-in-amazon-neptune/) in version 1.2.1.0 and above, you can now have access to the new `mergeV()` Gremlin step, which simplifies upsert functionality that we've explored previously in this section. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "43384470",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.mergeV([(T.id): 'jamie-1'])\n",
    "    .option(onCreate, [(T.label): 'person', first_name: 'Jamie'])\n",
    "    .option(onMatch, [age: 39])\n",
    ".id()   //not necessary, but helps to optimize the serialization of the output"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9487e727",
   "metadata": {},
   "source": [
    "Using `mergeV` provides functionality to support different actions depending on whether the node was created or already exists. For example, using the `option` modulator, we specify new key/value pairs that should be added when the node is created or updated.\n",
    "\n",
    "We can specify a map of key/value pairs that is used to perform the 'matching' process - in the query above we're specifying the `id` of the node must be `jamie-1` - however, we can provide as many additional key/value pairs as required. Note though, that for a match to exist, **all** values in the map must exist on a node.  "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d624367a",
   "metadata": {},
   "source": [
    "### Upserting Nodes using `fold`, `coalesce` and `unfold`\n",
    "\n",
    "Prior to the availability of `mergeV`, the `fold`, `coalesce` and `unfold` approach was used to perform upserts to both nodes and edges.\n",
    "\n",
    "There are four sections to an upsert in Gremlin:\n",
    "\n",
    "* `fold` - This combines the objects of the incoming traversal into a single row\n",
    "* `coalesce` - This accepts the incoming traversal and checks if the pattern exists\n",
    "    * `unfold` - This converts a single row of values into individual rows\n",
    "    * `<add action>` - This adds the object as specified\n",
    "\n",
    "Let's take a look at what a simple upsert statement looks like with a single node pattern match."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2ce3f5fb",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.V().hasLabel('person').has('first_name','Mike')\n",
    ".fold()\n",
    ".coalesce(\n",
    "    unfold(),\n",
    "    addV('person').property('first_name','Mike')\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8715cd5f",
   "metadata": {},
   "source": [
    "In this case, we created a new node as there are no matches for the specified pattern. As the `addV` step is part of the *create if it doesn't exist* process, we can specify additional properties at the point of creation, as shown below."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b1858d5f",
   "metadata": {},
   "source": [
    "As you can see, the `mergeV` approach is much clearer and far less complicated. \n",
    "\n",
    "It also offers the functionality to apply different properties, such as `CreateDate` or `UpdateDate` depending on whether we create a new node, or update an existing one."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8f4538aa",
   "metadata": {},
   "source": [
    "### Upserting Edges using `mergeE()`\n",
    "\n",
    "In the same way that `mergeV()` helps reduce the complexity of writing upserts for nodes, `mergeE()` offers the same functionality for edges.\n",
    "\n",
    "Let's first create two friends, *Jamie* and *Peter* using `mergeV`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "97753e2c",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.mergeV([(T.id):'person-1', (T.label):'person', first_name:'Jamie'])\n",
    " .mergeV([(T.id):'person-2', (T.label):'person', first_name:'Peter'])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "024935b1",
   "metadata": {},
   "source": [
    "Now, we can use `mergeE` to create a `friend` edge between the two nodes. When creating the edge, we use the `option` modulator to specify the label, as well as the `from` and `to` nodes. If the edge already existed, we would apply the `strength` property to the edge."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d2b10575",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.mergeE([(T.id):'friend-1'])\n",
    "   .option(onCreate, [(T.label): 'friend', (from):'person-1',(to):'person-2'])\n",
    "   .option(onMatch, [strength:100])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "afa87073",
   "metadata": {},
   "source": [
    "The `coalesce` pattern can also be used to upsert edges. Let's use the `Jamie` and `Peter` nodes we've just created to upsert an `friend` edge between."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f66d367b",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.V().hasLabel('person').has('first_name','Jamie')\n",
    ".out('friend')\n",
    ".hasLabel('person').has('first_name','Peter')\n",
    ".fold()\n",
    ".coalesce(\n",
    "    unfold(),\n",
    "    addE('friend')\n",
    "        .from(__.V().hasLabel('person').has('first_name','Jamie'))\n",
    "        .to(__.V().hasLabel('person').has('first_name','Peter'))\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "663dc3ea",
   "metadata": {},
   "source": [
    "### Conditional Upserts using `mergeV()` ###\n",
    "\n",
    "Sometimes you may only want to update a property depending on its current value. An example of this is `last_update_at` where you only want to update it if it's less than or equal to the new value. Combining the `onMatch` option with `sideEffect`, you can check the existing value of a property, and choose whether or not to update it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a32fd5e7",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "\n",
    "g.mergeV([(T.id): 'person-3']).\n",
    "    option(onCreate, [(T.label): 'person', first_name: 'Kevin', last_updated_at: datetime('2023-09-11')]).  // when creating the object, set first_name and last_updated_at properties\n",
    "    option(onMatch,                                                                                         // when updating the object\n",
    "          sideEffect(                                                                                       // use sideEffect to execute a standalone traversal\n",
    "               __.V('person-3')                                                                             // find the person-3 vertex\n",
    "               .choose(                                                                                     // use the choose step to perform an if-else \n",
    "                   values('last_updated_at').is(lt(datetime('2023-09-12'))),                                // check if the value of the last_updated_at property is less than the new value\n",
    "                       property(single,['last_updated_at':datetime('2023-09-12')]),                         // if true, set the last_updated_at property to the new value\n",
    "                       constant([:])                                                                        // if false, return an empty map\n",
    "               )\n",
    "        ).constant([:])                                                                                     // finally return an empty map\n",
    "    )\n",
    "  .id()                                                                                                     // not necessary, but helps to optimize the serialization of the output"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "60b2eab1",
   "metadata": {},
   "source": [
    "## Deleting Data\n",
    "\n",
    "Now that we have learned about how to add and update data in our graph, the final operation we need to learn is how to delete data.  In Gremlin, deletion of data is done with the `drop` step for removing nodes, edges and properties.\n",
    "\n",
    "### Removing a Node\n",
    "\n",
    "To remove a node(s) in Gremlin, we first need to match the items we want to delete, using the filtering steps we saw in the 01-Basic-Read-Queries notebook, and then remove them using `drop` step.  In the example below, we will remove any nodes with the `first_name` of `Steve` from our graph."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "190af502",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.V().hasLabel('person').has('first_name','Steve').drop()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a68c7a83",
   "metadata": {},
   "source": [
    "### Removing an Edge\n",
    "To remove an edge(s) in Gremlin is very similar to removing a node, except that we need to pass the edge to the `drop` step. In the example below, we will remove any edges associated with nodes with the `first_name` of `Joseph` from our graph."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2beb5c72",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.V().hasLabel('person').has('first_name','Joseph').bothE().drop()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fd55000f",
   "metadata": {},
   "source": [
    "### Deleting Nodes and Edges\n",
    "\n",
    "A point to note when comparing the process of deleting objects in Gremlin and other languages such as openCypher is that if you attempt to drop a node that is still attached to an edge in Gremlin, it **will work**. Unlike openCypher, where an error will be raised, Gremlin removes all the attached edges for you."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2c9d4fb8",
   "metadata": {},
   "source": [
    "### Deleting Properties\n",
    "\n",
    "As we've seen in the previous examples, we can combine the `drop` step to any traversal and it will delete all the objects in that traversal. We can do the same to drop properties by specifying them in the traversal pattern. In the following example, we're going to delete the `age` property from the `person` node with a `first_name` of `Jamie`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b32e6979",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.V().hasLabel('person').has('first_name','Jamie').properties('age').drop()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "eb0cd8de",
   "metadata": {},
   "source": [
    "And to confirm we have successfully removed the `age` property (and not the node itself), let's run the following code:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f517eb8e",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n",
    "g.V().hasLabel('person').has('first_name','Jamie').valueMap()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f5d352e5",
   "metadata": {},
   "source": [
    "## Exercises\n",
    "\n",
    "Now that we have gone through the concepts of Gremlin mutation queries, it's time to put it into practice.  Below are several exercises you can complete to verify your understanding of the material covered in this notebook.  As practice for what you have learned, please write the Gremlin queries specified below.\n",
    "\n",
    "### Exercise 1: Create a new person `Leonhard Euler`  and connect them to `Dave`.\n",
    "\n",
    "Using the data model above, write a query that will:\n",
    "\n",
    "* Create a new `person` node with a name of `Leonhard Euler` \n",
    "* Connect the new node to `Dave` via a `friends` edge\n",
    "* Return the new connection\n",
    "\n",
    "The results for this query is the ID of the new edge"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "36adacaf",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "04ab5b59",
   "metadata": {},
   "source": [
    "### Exercise 2: Upsert a list of `follows` and add an edge to `Dave`.\n",
    "\n",
    "Using the data model above, write a query that will:\n",
    "\n",
    "* Given the following list:\n",
    "    ```\n",
    "    [{first_name: 'Taylor', last_name: 'Hall'},\n",
    "    {first_name: 'Kelvin', last_name: 'Fernsby'},\n",
    "    {first_name: 'Ian', last_name: 'Rochester'}]\n",
    "    ```\n",
    "* Add or update `person` nodes for each item in the list\n",
    "* Add or update a `follows` relationship between each new node and `Dave`\n",
    "* If the edge is created write a property `creation` with a value `Created`\n",
    "* If the edge already exists write a property `creation` with a value `Updated`\n",
    "* Return the new edge elements\n",
    "* This query should be re-runnable without creating new nodes or edges\n",
    "\n",
    "The results for this query are the three edge elements"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dae9d211",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "678a243d",
   "metadata": {},
   "source": [
    "### Exercise 3: Delete all `follows` edges and remove any connected nodes with no other edges.\n",
    "\n",
    "Using the data model above, write a query that will:\n",
    "\n",
    "* Find all the `follows` edges and connected nodes and remove the edges\n",
    "* For each of the connected nodes see if they have any other edges\n",
    "* If they have edges then ignore them\n",
    "* If they have no edges then remove them"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f96b91e5",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%gremlin\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b5acefc5",
   "metadata": {},
   "source": [
    "## Conclusion\n",
    "\n",
    "In this notebook, we explored how to write queries to mutate data in Gremlin. In the next notebook, we'll be discovering how to read, explain, and profile outputs from your Gremlin queries in order to understand the data contained within each section, and how to use that to write performant queries."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
